package com.study.service;

import io.netty.channel.Channel;

/**
 * @author mjy
 * @date 2021/12/08
 * @description
 */
public interface ChannelService {

    /**
     * 存储设备在线
     * 1.存储map保存管道
     * 2.存储redis保证设备上线(redis过期时间，等于管道空闲时间)
     */

    void setDeviceOnlineAndRefreshChannle(String deviceCard, Channel channel);

    /**
     * redis存储在线状态(key=在线前缀+deviceCard)
     *
     * @param deviceCard
     */
    void setDeviceOnline(String deviceCard);


    /**
     * 将设备踢下线
     *
     * @param deviceCard
     */
    void removeDeviceOnline(String deviceCard);

    /**
     * 将设备踢下线并删除管道
     * @param deviceCard
     */
    void removerDeviceOnLineAndChannel(String deviceCard);

    /**
     * 关闭管道
     */
    void closeChannel(Channel channel);

}
